package pe.com.mowa.siscobsms.datos;

import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import pe.com.mowa.siscobsms.bean.analista;
import pe.com.mowa.siscobsms.bean.persona;
import pe.com.mowa.siscobsms.bean.proyecto;

import com.sun.xml.internal.ws.org.objectweb.asm.Type;

public class conProyecto {
	
	public void setPrestamo(proyecto pres) throws IOException, ClassNotFoundException, Exception
	{
			CallableStatement cs;
			Connection cn;
			cs = null;
			
			int estado=0;
			
			try {
				System.out.print("BEGIN SET PRESTAMO");
				System.out.print("PARAM 01");


					cn = new conexion().get_conection();
					System.out.print("PARAM 02");

					String sentence ="{ ? = call \"siscobsms\".\"setPrestamo\"(?,?,?,?,?,?,?,?,?,?) }";
					System.out.print("PARAM 03");

					cs = cn.prepareCall(sentence);  
					System.out.print("PARAM 04");
				  
     		        cs.registerOutParameter(1, Type.INT);
    				System.out.print("PARAM 1");
     		        
			        cs.setInt(2, pres.getPerson().getId());
    				System.out.print("PARAM 2");

			        cs.setInt(3, pres.getLocal().getId());
    				System.out.print("PARAM 3");

			        cs.setFloat(4, pres.getMntotal());
    				System.out.print("PARAM 4");

			        cs.setFloat(5, pres.getMnparcial());
    				System.out.print("PARAM 5");

			        cs.setFloat(6, pres.getMnentregado());
    				System.out.print("PARAM 6");

			        cs.setFloat(7, pres.getCuotas());
    				System.out.print("PARAM 7");

			        cs.setString(8, pres.getComentario());
    				System.out.print("PARAM 8");

    		        cs.setFloat(9, pres.getInteres());
    				System.out.print("PARAM 9");

    				cs.setDate(10, pres.getFecha());
    				System.out.print("PARAM 9");
    				
    				cs.setInt(11,pres.getPresPadre().getId());
			        
					cs.execute(); 
     				estado = cs.getInt(1);
				
					cs.close();
					cn.close();
				
					System.out.print("OK SET LOCAL");
			    }
			catch (SQLException e) {
				System.out.print("ERROR FUE.. "+e.getMessage());
			}
	}
	
	
	
	
	
	public void updEstadoPrestamo(int idprestamo,int pestado) throws IOException, ClassNotFoundException, Exception
	{
			CallableStatement cs;
			Connection cn;
			cs = null;
			
			int estado=0;
			
			try {
				System.out.print("BEGIN SET PRESTAMO");

					cn = new conexion().get_conection();
					String sentence ="{ ? = call \"siscobsms\".\"updEstadoPrestamo\"(?,?) }";
					cs = cn.prepareCall(sentence);  
				  
     		        cs.registerOutParameter(1, Type.INT);
     		        
			        cs.setInt(2, idprestamo);
			        cs.setInt(3,pestado);
			        
					cs.execute();
     				estado = cs.getInt(1);
				
					cs.close();
					cn.close();
				
					System.out.print("OK SET LOCAL");
			    }
			catch (SQLException e) {
				System.out.print("ERROR FUE "+e.getMessage());
			}
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	


	public void updPrestamo(proyecto pres) throws IOException, ClassNotFoundException, Exception
	{
			CallableStatement cs;
			Connection cn;
			cs = null;
			
			int estado=0;
			
			try {
				System.out.print("\n BEGIN UPD PRESTAMO...");

					cn = new conexion().get_conection();
					String sentence ="{ ? = call \"siscobsms\".\"updPrestamo\"(?,?,?,?,?,?,?) }";
					cs = cn.prepareCall(sentence);  
				  
     		        cs.registerOutParameter(1, Type.INT);
     		        
			        cs.setInt(2, pres.getId());
			        cs.setInt(3, pres.getLocal().getId());
			        cs.setFloat(4, pres.getInteres());
			        cs.setFloat(5, pres.getMnentregado());
			        cs.setFloat(6, pres.getCuotas());
			        
			        System.out.print("SE PONDRA COMENTARIO: "+pres.getComentario());
			        cs.setString(7, pres.getComentario());
			        cs.setDate(8, pres.getFecha());
			        
					cs.execute();
     				estado = cs.getInt(1);
				
					cs.close();
					cn.close();
				
					System.out.print("OK UPD LOCAL");
			    }
			catch (SQLException e) {
				System.out.print("ERROR FUE "+e.getMessage());
			}
	}
	
	public ArrayList getPrestamos(int idpersona) throws Exception {

		CallableStatement cs;
		Connection cn;
		cs = null;
		cn = null;
		System.out.print("\n Antes de while datos personas -1");
		cn =  new conexion().get_conection();
		ResultSet rs = null;
		ArrayList prestamos = new ArrayList();

		try {
			System.out.print("\n Antes de while datos prestamos 0.....pp");
			String sentence ="select * from  \"siscobsms\".\"getPrestamos\"(?)";
			System.out.print("\n Query es "+sentence);
			cs = cn.prepareCall(sentence);
			cs.setInt(1, idpersona);
			cs.execute();
			rs = cs.getResultSet();
			proyecto pres;
			System.out.print("\n Antes de while datos prestamos 1");
			analista loc ;
			persona per ;
			
			while (rs.next()) {
				
				System.out.print("\n Dato prestamo es "+rs.getString("nomper"));

				pres = new proyecto();
				loc = new analista();
				per = new persona();
				loc.setNombre(rs.getString("nomlocal"));
				loc.setId(rs.getInt("idlocal"));

				per.setNombre(rs.getString("nomper"));
				pres.setId(rs.getInt("idprestamo"));
				pres.setPerson(per);
				pres.setLocal(loc);
				pres.setCuotas(rs .getFloat("cuotas"));
				pres.setMntotal(rs.getFloat("mntotal"));
				pres.setMnparcial(rs.getFloat("mnparcial"));
				pres.setMnentregado(rs.getFloat("mnentregado"));
				pres.setComentario(rs.getString("comentario"));
				pres.setFecha(rs.getDate("fec"));
				pres.setInteres(rs.getFloat("interes"));
				pres.setEstado(rs.getInt("estado"));
				
				proyecto ppadre = new proyecto();
				proyecto pabu = new proyecto();
				
				ppadre.setId(rs.getInt("idpadre"));
				pabu.setId(rs.getInt("idabuelo"));
				
				pres.setPresPadre(ppadre);
				pres.setPresAbuelo(pabu);
							
				prestamos.add(pres);
				System.out.print("\n Dato persona es :"+per.getId()+" / "+per.getNombre()+" / "+per.getApePat()+" / "+per.getApeMat()+" / "+per.getDireccion()+" / "+per.getTel1()+" / "+per.getTel2());
			}

		} catch (Exception e) {
			
			System.out.print("\n Error fue"+e.getMessage());

		}

		cs.close();
		cn.close();

		return prestamos;
	}
	
	
	
	
}
